﻿/**********************************************************************
 * @file   OperatorsMeshGen.h
 * @brief  网格生成
 * @author liuzhonghua (liuzhonghuaszch@163.com)
 * @date   2024-11-28
 *********************************************************************/
#ifndef _OperatorsMeshGen_H
#define _OperatorsMeshGen_H

#include "FITK_Kernel/FITKCore/FITKActionOperator.h"
#include "FITK_Kernel/FITKCore/FITKOperatorRepo.h"

namespace ModelOper
{
    /**
     * @brief  网格生成操作器
     * @author liuzhonghua (liuzhonghuaszch@163.com)
     * @date   2024-11-28
     */
    class OperatorsMeshGen :public Core::FITKActionOperator
    {
        Q_OBJECT;
    public:
        /**
         * @brief Construct a new Operators Open object
         * @author liuzhonghua (liuzhonghuaszch@163.com)
         * @date   2024-11-28
         */
         explicit OperatorsMeshGen();
         /**
          * @brief Destroy the Operators Open object
          * @author liuzhonghua (liuzhonghuaszch@163.com)
          * @date   2024-11-28
          */
         virtual ~OperatorsMeshGen();
         /**
          * @brief 执行界面操作
          * @return true     执行成功
          * @return false     执行失败
          * @author LiBaojun (libaojunqd@foxmail.com)
          * @date 2024-10-31
          */
         virtual bool execGUI() override;
         /**
          * @brief 执行读入操作
          * @return true     执行成功
          * @return false     执行失败
          * @author LiBaojun (libaojunqd@foxmail.com)
          * @date 2024-10-31
          */
         virtual bool execProfession() override;

     private slots:
         /**
          * @brief  gmsh msh 文件读入
          * @author liuzhonghua (liuzhonghuaszch@163.com)
          * @date   2024-11-29
          */
         void gmshMshImport();
         /**
          * @brief    msh 文件读入成功
          * @return   void
          * @author   liuzhonghua (liuzhonghuaszch@163.com)
          * @date     2024-11-29
          */
         void ioThreadFinishedSlot();
    };

    // 按钮注册相关操作
    Register2FITKOperatorRepo(actionMeshGen, OperatorsMeshGen);
}

#endif